The present invention relates to the field of software program development for internationalized programs, and more particularly to a method for estimating the number of internationalization faults in an internationalized software program.
Internationalization is a process of enabling a program, e.g., Java, to run internationally. That is, an internationalized program has the flexibility to run correctly in any country. An internationalized program must be able to read, write and manipulate localized text. Furthermore, an internationalized program must conform to local customs when displaying dates and times, formatting numbers and sorting strings.
Typically, the development of an internationalized software program involves the initial steps of analyzing a problem and then designing the overall structure of the internationalized software program to solve the problem analyzed. After the general structure of the internationalized software program has been designed, it is then constructed, i.e. coded, after which it undergoes a period of testing and debugging. Finally, after the internalized program has been successfully tested, it is released for general use.
The total time spent testing and debugging an internationalized software program may vary from program to program. Unfortunately, software developers when asked to test and debug a particular internationalized software program may not be able to estimate the number of internationalization faults, e.g., errors, warnings, in the particular internationalized software program to be debugged thereby being unable to estimate the number of hours to be spent testing and debugging the internationalized software program. Furthermore, a project manager may assign multiple software developers to test and debug a particular internationalized software program. Unfortunately, the project manager may not be able to determine the exact number of software developers to be assigned since the project manager may not be able to estimate the number of internationalization faults, e.g., errors, warnings, in the particular internationalized software program to be debugged thereby being unable to estimate the number of software developers to be assigned to test and debug the particular internationalized software program.
It would therefore be desirable to develop a method to estimate the number of internationalization faults, e.g., errors, warnings, in a particular internationalized software program.
The problems outlined above may at least in part be solved in some embodiments by calculating an estimated number of internationalization faults, e.g., errors, warnings, in the software program based on a first and a second factor as well as a count of the total number of lines of code in the software program. The estimated number of internationalization faults, e.g., errors, warnings, in the software program may be based on scanning a subset of the total number of lines of code in the software program rather than scanning the total number of lines of code in the software program. Upon scanning a subset of the total number of lines of code in the software program, a number of internationalization faults, e.g., errors, warnings, as well as a count of the number of lines of code scanned may be identified. The first factor may be calculated based on the number of internationalization faults, e.g., errors, warnings, identified in the code scanned as well as the count of the lines of code scanned. Upon identifying the internationalization faults, e.g., errors, warnings, in the lines of code scanned, a manual analysis may be performed to identify internationalization faults, e.g., errors, warnings, that should not have been identified. These incorrectly identified internationalization faults may then be subtracted from the internationalization faults, e.g., errors, warnings, identified in the code scanned. The number of internationalization faults, e.g., errors, warnings, remaining after subtracting the incorrectly identified internationalization faults from the internationalization faults identified in the code scanned along with the number of internationalization faults identified from the code scanned may be used to calculate the second factor. An estimate of the number of internationalization faults, e.g., errors, warnings, in the entire code of the software program may then be calculated based on the first and second factor as well as the count of the total number of lines of code in the software program.
In one embodiment, a method for estimating the number of internationalization faults in a software program comprises the step of scanning a subset of the total number of lines of code in a software program. A number of internationalization faults, e.g., errors, warnings, may then be identified in the lines of code scanned. A first factor may then be calculated based on a count of the lines of code scanned and the number of internationalization faults, e.g., errors, warnings, identified in the lines of code scanned. Upon scanning a subset of the total number of lines of code in the software program, an analysis may be conducted to identify internationalization faults, e.g., errors, warnings, that should not have been identified. The internationalization faults, e.g., errors, warnings, identified in error may be subtracted from the internationalization faults identified, e.g., errors, warnings, in the lines of code scanned. A second factor may then be calculated based on the number of internationalization faults, e.g., errors, warnings, remaining after subtracting the number of internationalization faults identified in error from the number of internationalization faults identified in the lines of code scanned as well as the number of internationalization faults identified in the lines of code scanned. An estimate of the number of internationalization faults, e.g., errors, warnings, in the entire software program, i.e. in all the lines of code of the software program, may then be calculated based on the first and second factor as well as the count of the total number of lines of code in the software program.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention.